Index use for case insensitive query - Mailing list pgsql-novice

From eric soroos
Subject Index use for case insensitive query
Date
Msg-id 46780784.1178649587@[4.42.179.151]
Whole thread Raw
Responses Re: Index use for case insensitive query  (Bruno Wolff III <bruno@wolff.to>)
List pgsql-novice
I've got a table where one of the main lookup access is by email address, which is generally a case insensitive lookup.


With the constraints that: some of the entries aren't reall email addresses and I can't change the case of all the data
becauseof that: 

Is there a way to do a case insensitive index and appropriate query so that when searching for an email address, I get
thebenefit of an index? 


In the following queries, there's an index on dl_profile(_email).

test=# explain analyze select _donorNum from dl_profile where _email~'^foo@bar.org$' ;
NOTICE:  QUERY PLAN:

Index Scan using dl_profile_email on dl_profile  (cost=0.00..467.75 rows=1 width=4) (actual time=14.59..14.63 rows=1
loops=1)
Total runtime: 14.97 msec

EXPLAIN
test=# explain analyze select _donorNum from dl_profile where _email~*'^foo@bar.org$' ;
NOTICE:  QUERY PLAN:

Seq Scan on dl_profile  (cost=0.00..10607.28 rows=1 width=4) (actual time=4196.43..5078.86 rows=1 loops=1)
Total runtime: 5079.42 msec

thanks

eric




pgsql-novice by date:

Previous
From: "Steinn E. Sigurdarson"
Date:
Subject: Re: PostgresQL applications using libpq
Next
From: "Chris Pizzo"
Date:
Subject: How do I use the Binary AND operator in a select?